<!DOCTYPE html>
<html xmlns="http://www.w3c.org/1999/xhtml" xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html" xmlns:ui="http://java.sun.com/jsf/facelets"
  xmlns:p="http://primefaces.org/ui" xmlns:pt="http://xmlns.jcp.org/jsf/passthrough" xmlns:pe="http://primefaces.org/ui/extensions" xmlns:c="http://java.sun.com/jsp/jstl/core">

<ui:decorate id="msrpDecoration" template="/resources/template/template-crud.xhtml">

  <ui:param name="title" value="Divisão de Roteiro" />

  <ui:param name="managedBean" value="#{roteiroBean}" />

  <ui:define name="botaoTopCadastro">

  </ui:define>

  <ui:define name="botaoTopExclusao">

  </ui:define>

  <ui:define name="botaoExtraTabela">
    <h:commandButton actionListener="#{managedBean.view}" styleClass="btnView">
      <f:ajax render="frmDados:panelTemplate" />
    </h:commandButton>
  </ui:define>

  <ui:define name="parametroConsulta">

    <script>
    jQuery(function($){
           jQuery("#frmDados\\:dataFaturamentoCons").mask("99/99/9999",{placeholder:"dd/mm/yyyy"});
           $("#frmDados\\:competenciaCon").mask("99/9999");
           /*$("#campoSenha").mask("***-****");*/
    });
  </script>

    <h:panelGrid columns="2" columnClasses="colunas">

      <h:panelGroup>
        <h:outputLabel styleClass="fonte" value="Competência" />
        <h:inputText value="#{roteiroBean.parametersSearch.competencia}" id="competenciaCon">
          <f:converter converterId="competenciaConverter" />
        </h:inputText>
      </h:panelGroup>

      <h:panelGroup>
        <h:outputLabel styleClass="fonte" value="Setor" />
        <h:inputText value="#{roteiroBean.parametersSearch.codSetor}">
          <f:convertNumber pattern="#0" locale="pt_BR" />
        </h:inputText>
      </h:panelGroup>

      <h:panelGroup>
        <h:outputLabel styleClass="fonte" value="Data faturamento" />
        <h:inputText value="#{roteiroBean.parametersSearch.dataFaturamento}" id="dataFaturamentoCons">
          <f:convertDateTime pattern="dd/MM/yyyy" locale="pt_BR" timeZone="America/Fortaleza" />
        </h:inputText>
      </h:panelGroup>

      <h:panelGroup>
        <h:outputLabel styleClass="fonte" value="Status" />
        <h:selectOneMenu value="#{roteiroBean.parametersSearch.status}">
          <f:selectItem itemLabel="Selecione uma opção" />
          <f:selectItems var="_status" itemValue="#{_status}" itemLabel="#{_status}" value="#{roteiroBean.lstStatus}" />
        </h:selectOneMenu>
      </h:panelGroup>

    </h:panelGrid>

  </ui:define>

  <ui:define name="tabelaDados">

    <p:column headerText="Núm" width="6%" style="text-align:center;">
      <h:outputText styleClass="fonte" value="#{beanEnt.numero}" />
    </p:column>

    <p:column headerText="Comp" style="text-align:center;">
      <h:outputText styleClass="fonte" value="#{beanEnt.competencia}">
        <f:converter converterId="competenciaConverter" />
      </h:outputText>
    </p:column>

    <p:column headerText="Setor" style="text-align:center;">
      <h:outputText styleClass="fonte" value="#{beanEnt.codSetor}" />
    </p:column>

    <p:column headerText="Status">
      <h:outputText styleClass="fonte" value="#{beanEnt.status}" />
    </p:column>

    <p:column headerText="Qtde">
      <h:outputText styleClass="fonte" value="#{beanEnt.qtdImovel}" />
    </p:column>

    <p:column headerText="Leiturista" resizable="true">
      <h:outputText styleClass="fonte" value="#{beanEnt.equipamento.leiturista.nome}" />
    </p:column>

    <p:column headerText="Faturamento" style="text-align:center;">
      <h:outputText styleClass="fonte" value="#{beanEnt.dataFaturamento}">
        <f:convertDateTime pattern="dd/MM/yyyy" locale="pt_BR" timeZone="America/Fortaleza" />
      </h:outputText>
    </p:column>

    <p:column headerText="Carga" style="text-align:center;">
      <h:outputText styleClass="fonte" value="#{beanEnt.dataCarga}">
        <f:convertDateTime pattern="dd/MM/yyyy HH:mm:ss" locale="pt_BR" timeZone="America/Fortaleza" />
      </h:outputText>
    </p:column>

    <p:column headerText="Retorno" style="text-align:center;">
      <h:outputText styleClass="fonte" value="#{beanEnt.dataRetorno}">
        <f:convertDateTime pattern="dd/MM/yyyy HH:mm:ss" locale="pt_BR" timeZone="America/Fortaleza" />
      </h:outputText>
    </p:column>

  </ui:define>

  <ui:define name="formCadastro">

    <script>
    jQuery(function($){
    	 jQuery("#frmDados\\:dataFaturamentoCad").mask("99/99/9999",{placeholder:"dd/mm/yyyy"});
        /*   $("#campoTelefone").mask("(999) 999-9999");
           $("#campoSenha").mask("***-****");*/
    });
  </script>


    <h:panelGroup rendered="#{managedBean.state eq 'incluir'}">
      <h:panelGrid columns="2" columnClasses="colunas">

        <h:outputLabel styleClass="fonte" value="Quantidade de Leiturista" />
        <p:inputText id="imei" value="#{roteiroBean.entity.qtdLeiturista}" required="true" requiredMessage="Quantidade de leiturista é requerido.">
          <pe:keyFilter mask="num" />
        </p:inputText>

        <h:outputLabel styleClass="fonte" value="Data faturamento" />
        <h:inputText value="#{roteiroBean.entity.dataFaturamento}" id="dataFaturamentoCad" required="true" requiredMessage="Data faturamento é requirido.">
          <f:convertDateTime pattern="dd/MM/yyyy" />
        </h:inputText>

      </h:panelGrid>

      <p:dataTable id="tblDadosCarga" var="_carga" value="#{roteiroBean.lstCarga}" emptyMessage="Não existem cargas disponíveis para geração de roteiro." selectionMode="single"
        selection="#{roteiroBean.carga}" rowKey="#{_carga.id}">

        <p:column headerText="Competência">
          <h:outputText styleClass="fonte" value="#{_carga.competencia}">
            <f:converter converterId="competenciaConverter" />
          </h:outputText>
        </p:column>

        <p:column headerText="Setor">
          <h:outputText styleClass="fonte" value="#{_carga.codSetor}">
          </h:outputText>
        </p:column>

        <p:column headerText="Carga">
          <h:outputText styleClass="fonte" value="#{_carga.dataCarga}">
            <f:convertDateTime pattern="dd/MM/yyyy" />
          </h:outputText>
        </p:column>

        <p:column headerText="Qtde imóvel">
          <h:outputText styleClass="fonte" value="#{_carga.qtdImovel}">
          </h:outputText>
        </p:column>

        <p:column headerText="Qtde Lançamento Futuro">
          <h:outputText styleClass="fonte" value="#{_carga.qtdLancamentoFuturo}">
          </h:outputText>
        </p:column>

        <p:column headerText="Status">
          <h:outputText styleClass="fonte" value="#{_carga.enumStatusCarga}">
          </h:outputText>
        </p:column>

      </p:dataTable>

    </h:panelGroup>

    <h:panelGroup rendered="#{managedBean.state eq 'alterar'}">

      <h:panelGrid columns="8" columnClasses="colunas">
        <h:panelGrid columns="1" style="margin:0 20px; text-align:center;">
          <h:outputLabel styleClass="fonte" value="Número" />
          <h:outputText value="#{roteiroBean.entity.numero}" />
        </h:panelGrid>

        <h:panelGrid columns="1" style="margin:0 20px; text-align:center;">
          <h:outputLabel styleClass="fonte" value="Total de imóveis da carga" />
          <h:outputText value="#{roteiroBean.entity.carga.qtdImovel}" />
        </h:panelGrid>

        <h:panelGrid columns="1" style="margin:0 20px; text-align:center;">
          <h:outputLabel styleClass="fonte" value="Total de imóveis em roteiro" />
          <h:outputText value="#{roteiroBean.entity.qtdItensEmRoteiro}" />
        </h:panelGrid>

        <h:panelGrid columns="1" style="margin:0 20px; text-align:center;">
          <h:outputLabel styleClass="fonte" value="Total de imóveis sem roteiro" />
          <h:outputText value="#{roteiroBean.entity.qtdItensOrfaos}" />
        </h:panelGrid>

      </h:panelGrid>

      <h:panelGrid columns="2" columnClasses="colunas" style="margin:0 20px;">
        <h:outputLabel styleClass="fonte" value="Equipamento" />
        <h:selectOneMenu value="#{roteiroBean.entity.equipamento}" required="true" requiredMessage="Equipamento é requerido." converter="entityConverter">
          <f:selectItem itemLabel="Selecione uma opção" />
          <f:selectItems var="_equipamento" itemValue="#{_equipamento}" itemLabel="#{_equipamento.imei}" value="#{roteiroBean.lstEquipamento}" />
          <f:attribute name="itens" value="#{roteiroBean.lstEquipamento}" />
        </h:selectOneMenu>
      </h:panelGrid>

      <h:panelGroup id="pnlItensRoteiro" layout="block" style="margin-top:10px;">

        <p:dataTable id="tblItensRoteiro" var="_itemRoteiro" rowKey="#{_itemRoteiro.id}" paginator="true" rows="10" selection="#{roteiroBean.selectedItens}"
          emptyMessage="O roteiro não possui itens associados." value="#{roteiroBean.entity.lstItemRoteiro}">

          <p:column selectionMode="multiple" width="5%" style="text-align:center;" />

          <p:column headerText="Ordem" width="5%" style="text-align:center;">
            <h:outputText styleClass="fonte" value="#{_itemRoteiro.ordem}" />
          </p:column>

          <p:column headerText="Inscrição" width="10%">
            <h:outputText styleClass="fonte" value="#{_itemRoteiro.imovel.inscricao}" />
          </p:column>

          <p:column headerText="Ordem SAAE" width="10%">
            <h:outputText styleClass="fonte" value="#{_itemRoteiro.imovel.ordemRoteiro}" />
          </p:column>

          <p:column headerText="Geografia" width="15%">
            <h:outputText styleClass="fonte" value="#{_itemRoteiro.imovel.codLocalidade}.#{_itemRoteiro.imovel.codDistrito}.#{_itemRoteiro.imovel.codSetor}" />
          </p:column>

          <p:column headerText="Endereço">
            <h:outputText styleClass="fonte" value="#{_itemRoteiro.imovel.rua}, #{_itemRoteiro.imovel.numero} - #{_itemRoteiro.imovel.complemento} - #{_itemRoteiro.imovel.bairro}" />
          </p:column>

          <p:column headerText="Cliente">
            <h:outputText styleClass="fonte" value="#{_itemRoteiro.imovel.nomeResponsavel}" />
          </p:column>

          <f:facet name="footer">
            <h:panelGroup styleClass="pull-left" style="margin-top:-35px" layout="block">
              <p:commandButton id="btnAddItens" icon="ui-icon ui-icon-circle-plus" process="@this" update=":frmDados:panelTemplate" value="Adicionar Itens"
                actionListener="#{managedBean.buscarItensOrfaos}" oncomplete="PF('dialogAddItem').show();" />

              <p:commandButton id="btnExcluirItens" icon="ui-icon ui-icon-trash" process=":frmDados:pnlItensRoteiro" update=":frmDados:panelTemplate"
                value="Excluir Itens Selecionados" actionListener="#{managedBean.desassociarItensRoteiro}" />
            </h:panelGroup>
          </f:facet>

        </p:dataTable>
      </h:panelGroup>

      <p:dialog id="dlgAddItem" widgetVar="dialogAddItem" header="Adicionar itens ao roteiro" modal="true">

        <p:dataTable id="tblItensOrfaos" var="_itemRoteiro" rowKey="#{_itemRoteiro.id}" paginator="true" rows="10" selection="#{roteiroBean.selectedOrfao}"
          emptyMessage="Todos os itens já estão associados a um roteiro." value="#{roteiroBean.entity.lstItemOrfao}">

          <p:column selectionMode="multiple" width="5%" style="text-align:center;" />

          <p:column headerText="Inscrição" width="10%">
            <h:outputText styleClass="fonte" value="#{_itemRoteiro.imovel.inscricao}" />
          </p:column>

          <p:column headerText="Ordem SAAE" width="10%">
            <h:outputText styleClass="fonte" value="#{_itemRoteiro.imovel.ordemRoteiro}" />
          </p:column>

          <p:column headerText="Geografia" width="15%">
            <h:outputText styleClass="fonte" value="#{_itemRoteiro.imovel.codLocalidade}.#{_itemRoteiro.imovel.codDistrito}.#{_itemRoteiro.imovel.codSetor}" />
          </p:column>

          <p:column headerText="Endereço">
            <h:outputText styleClass="fonte" value="#{_itemRoteiro.imovel.rua}, #{_itemRoteiro.imovel.numero} - #{_itemRoteiro.imovel.complemento} - #{_itemRoteiro.imovel.bairro}" />
          </p:column>

          <p:column headerText="Cliente">
            <h:outputText styleClass="fonte" value="#{_itemRoteiro.imovel.nomeResponsavel}" />
          </p:column>

          <f:facet name="footer">
            <h:panelGroup styleClass="pull-left" style="margin-top:-35px" layout="block">
              <p:commandButton id="btnAddItens" icon="ui-icon ui-icon-circle-plus" process=":frmDados:dlgAddItem" update=":frmDados:panelTemplate"
                actionListener="#{managedBean.associarItensRoteiro}" oncomplete="PF('dialogAddItem').hide();" value="Adicionar Itens Selecionados" />
            </h:panelGroup>
          </f:facet>

        </p:dataTable>
      </p:dialog>

    </h:panelGroup>

  </ui:define>

  <ui:define name="formExclusao">
    <h:panelGrid columns="2" columnClasses="colunas">

      <h:outputLabel styleClass="fonte" value="Número" />
      <h:outputText value="#{roteiroBean.entity.numero}" />

      <h:outputLabel styleClass="fonte" value="Equipamento" />
      <h:outputText value="#{roteiroBean.entity.equipamento.imei}" />

    </h:panelGrid>

    <p:dataTable var="_itemRoteiro" value="#{roteiroBean.entity.lstItemRoteiro}" paginator="true" rows="10" emptyMessage="O roteiro não possui itens associados.">

      <p:column headerText="Ordem" width="10%">
        <h:outputText styleClass="fonte" value="#{_itemRoteiro.ordem}">
        </h:outputText>
      </p:column>

      <p:column headerText="Inscrição" width="10%">
        <h:outputText styleClass="fonte" value="#{_itemRoteiro.imovel.inscricao}">
        </h:outputText>
      </p:column>

      <p:column headerText="Ordem SAAE" width="10%">
        <h:outputText styleClass="fonte" value="#{_itemRoteiro.imovel.ordemRoteiro}">
        </h:outputText>
      </p:column>

      <p:column headerText="Geografia" width="15%">
        <h:outputText styleClass="fonte" value="#{_itemRoteiro.imovel.codLocalidade}.#{_itemRoteiro.imovel.codDistrito}.#{_itemRoteiro.imovel.codSetor}">
        </h:outputText>
      </p:column>

      <p:column headerText="Endereço">
        <h:outputText styleClass="fonte" value="#{_itemRoteiro.imovel.rua}, #{_itemRoteiro.imovel.numero} - #{_itemRoteiro.imovel.complemento} - #{_itemRoteiro.imovel.bairro}">
        </h:outputText>
      </p:column>

      <p:column headerText="Cliente">
        <h:outputText styleClass="fonte" value="#{_itemRoteiro.imovel.nomeResponsavel}">
        </h:outputText>
      </p:column>

    </p:dataTable>
  </ui:define>

  <ui:define name="formDetalhar">

    <h:panelGrid columns="2" columnClasses="colunas">

      <h:outputLabel styleClass="fonte" value="Número" />
      <h:outputText value="#{roteiroBean.entity.numero}" />

      <h:outputLabel styleClass="fonte" value="Equipamento" />
      <h:outputText value="#{roteiroBean.entity.equipamento.imei}" />

    </h:panelGrid>

    <p:dataTable var="_itemRoteiro" value="#{roteiroBean.entity.lstItemRoteiro}" emptyMessage="Não existem cargas disponíveis para geração de roteiro.">

      <p:column headerText="Ordem">
        <h:outputText styleClass="fonte" value="#{_itemRoteiro.ordem}">
        </h:outputText>
      </p:column>

      <p:column headerText="Inscrição">
        <h:outputText styleClass="fonte" value="#{_itemRoteiro.imovel.inscricao}">
        </h:outputText>
      </p:column>

      <p:column headerText="Ordem SAAE">
        <h:outputText styleClass="fonte" value="#{_itemRoteiro.imovel.ordemRoteiro}">
        </h:outputText>
      </p:column>

      <p:column headerText="Geografia">
        <h:outputText styleClass="fonte" value="#{_itemRoteiro.imovel.codLocalidade}.#{_itemRoteiro.imovel.codDistrito}.#{_itemRoteiro.imovel.codSetor}">
        </h:outputText>
      </p:column>

      <p:column headerText="Endereço">
        <h:outputText styleClass="fonte" value="#{_itemRoteiro.imovel.rua}, #{_itemRoteiro.imovel.numero} - #{_itemRoteiro.imovel.complemento} - #{_itemRoteiro.imovel.bairro}">
        </h:outputText>
      </p:column>

      <p:column headerText="Cliente">
        <h:outputText styleClass="fonte" value="#{_itemRoteiro.imovel.nomeResponsavel}">
        </h:outputText>
      </p:column>

    </p:dataTable>

  </ui:define>

</ui:decorate>

</html>